﻿using System;

namespace Teigha.Core
{
	public class OdGiViewportDraw_Internal : OdGiViewportDraw
	{
		public OdGiViewportDraw_Internal(IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
		{
		}

		public override OdGiViewport viewport()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiViewportDraw_viewport(OdGiViewportDraw.getCPtr(this));
			OdGiViewport result = new OdGiViewport_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGiViewportGeometry geometry()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiViewportDraw_geometry(OdGiViewportDraw.getCPtr(this));
			OdGiViewportGeometry result = new OdGiViewportGeometry_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override uint sequenceNumber()
		{
			uint result = GlobalsPINVOKE.OdGiViewportDraw_sequenceNumber(OdGiCommonDraw.getCPtr(this));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override bool isValidId(uint viewportId)
		{
			bool result = GlobalsPINVOKE.OdGiViewportDraw_isValidId(OdGiCommonDraw.getCPtr(this), viewportId);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdDbStub viewportObjectId()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiViewportDraw_viewportObjectId(OdGiViewportDraw.getCPtr(this));
			OdDbStub result = new OdDbStub(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGiSubEntityTraits subEntityTraits()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiCommonDraw_subEntityTraits(OdGiViewportDraw.getCPtr(this));
			OdGiSubEntityTraits result = new OdGiSubEntityTraits_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public override OdGiGeometry rawGeometry()
		{
			IntPtr cPtr = GlobalsPINVOKE.OdGiCommonDraw_rawGeometry(OdGiViewportDraw.getCPtr(this));
			OdGiGeometry result = new OdGiGeometry_Internal(cPtr, false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}
	}
}
